// -----------------------------------------------------------------------------
// M A R I T I M E   R E S E A R C H   I N S T I T U T E   N E T H E R L A N D S
// -----------------------------------------------------------------------------
// Copyright (C) December 14, 2009 MARIN - All rights reserved - http://www.marin.nl
// -----------------------------------------------------------------------------
// Program  : mermaid
// Module   : interactive waves
// File     : MathPulse.h
// -----------------------------------------------------------------------------

#ifndef MATHPULSE_H
#define	MATHPULSE_H

//#include <mml/Vector.h>
#include "defines.h"
#include "Array2D.h"
#include "Pulse.h"

class MathGeometry;

// -----------------------------------------------------------------------------
// class MathPulse
// -----------------------------------------------------------------------------
/// short description
/** long description */
// -----------------------------------------------------------------------------
class MathPulse : public Pulse
{
    typedef Pulse super;

public:

    MathPulse(const MathGeometry& math, double dx, double dy);

    virtual ~MathPulse();

    virtual void compute(int *px, int *py, Array2D<REAL>* pPulse);

private:

    MathPulse(const MathPulse& a_other);
    MathPulse & operator=(const MathPulse& a_other);

    const MathGeometry& m_geometry;

};

#endif // MATHPULSE_H

